/******************************************************************************\
    Data.h contains implementations of plugin commands.
    It's used with acm server plugins. See DllMain.cpp for details.
    Copyright (C) 2008  Victor Vinogradov (fly3333@gmail.com)

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
\******************************************************************************/

#pragma once

#include <Common\Plugin.h>

bool SetProxyPort( unsigned short port );
bool GetTitleLength( unsigned long *title_length );
bool GetTitle( char *title );
bool GetCommentLength( unsigned long *comment_length );
bool GetComment( char *comment );
bool GetVariablesCount( unsigned long *variables_count );
//bool GetVariableNameLength( unsigned long variable_id, unsigned long *variable_name_length );
//bool GetVariableName( unsigned long variable_id, char *variable_name );
bool SetVariableValue( unsigned long variable_id, char *variable_value );
bool GetProblemsCount( unsigned long *problems_count );
bool GetProblemsIds( unsigned long *problem_id );
bool GetProblemHeaderLength( unsigned long problem_id, unsigned long *problem_header_length );
bool GetProblemHeader( unsigned long problem_id, char *problem_header );
bool GetProblemBodyLength( unsigned long problem_id, unsigned long *problem_body_length );
bool GetProblemBody( unsigned long problem_id, char *problem_body );
bool GetProblemAdditionsCount( unsigned long problem_id, unsigned long *additions_count );
bool GetProblemAdditionsIds( unsigned long problem_id, unsigned long *addition_id );
bool GetAdditionNameLength( unsigned long addition_id, unsigned long *addition_name_length );
bool GetAdditionName( unsigned long addition_id, char *addition_name );
bool GetAdditionDataLength( unsigned long addition_id, unsigned long *addition_data_length );
bool GetAdditionData( unsigned long addition_id, char *addition_data );
bool GetLanguagesCount( unsigned long *languages_count );
bool GetLanguagesIds( unsigned long *language_id );
bool GetLanguageTitleLength( unsigned long language_id, unsigned long *language_title_length );
bool GetLanguageTitle( unsigned long language_id, char *language_title );
bool Submit( sSubmit *submit_data );
bool GetLastCompilationErrorLength( unsigned long *last_compilation_error_length );
bool GetLastCompilationError( char *last_compilation_error );
bool GetVariablePropertiesLength( unsigned long variable_id, unsigned long *variable_properties_length );
bool GetVariableProperties( unsigned long variable_id, char *variable_properties );
